home *** CD-ROM | disk | FTP | other *** search
/ Light ROM 1 / LIGHT-ROM 1 (Amiga Library Services)(1994).iso / ffdisks / d883.lha / BBBBS / BBBBS59.lha / rexx / Make_BrowseList.baud < prev    next >
Text File  |  1992-10-30  |  5KB  |  209 lines

  1. /* $VER: 5.7 Make_BrowseList.baud 30 Oct 1992 (30.10.92)
  2.    places archived, user defined, browselist in user's email
  3.    the actual archiving is done by ArcBrowse.rexx thru AREXX
  4.    copyright 1991-92 Richard Lee Stockton  FREELY DISTRIBUTABLE
  5. */
  6.  
  7. SIGNAL ON ERROR
  8. SIGNAL ON SYNTAX
  9. SIGNAL ON FAILURE
  10. SIGNAL ON BREAK_C
  11. SIGNAL ON BREAK_E
  12.  
  13. CR='0D'x
  14.  
  15. name=''
  16. ARG name .
  17. IF name='' THEN EXIT(0);
  18. IF GETCLIP('BBS_BROWSE')~='' THEN
  19.   DO
  20.     SAY 'Sorry, only one archiving at a time.  Please try again later.'CR
  21.     EXIT(0);
  22.   END
  23. CALL SETCLIP('BBS_BROWSE','ON')
  24.  
  25. figarg='s:CONFIG.BBS'
  26. IF ~EXISTS(figarg) THEN figarg='BBS:BBS_TEXT/CONFIG.BBS'
  27. x=OPEN(f,figarg,'R')
  28. IF x=0 THEN
  29.   DO
  30.     SAY 's:CONFIG.BBS and BBS:BBS/CONFIG.BBS are both missing!'
  31.     CALL SETCLIP('BBS_BROWSE')
  32.     EXIT(20)
  33.   END
  34.  
  35. lynes.=''
  36. DO i=1 TO 8
  37.   lynes.i=READLN(f)
  38. END
  39. CALL CLOSE(f)
  40.  
  41. compos=POS('/*',lynes.1)
  42. IF compos>0 THEN lynes.1=LEFT(lynes.1,compos-1)
  43. bbsname = STRIP(lynes.1)
  44.  
  45. sysop   = WORD(lynes.2,1)
  46.  
  47. bbspath = WORD(lynes.6,1)
  48. IF ~EXISTS(bbspath) THEN
  49.   DO
  50.     SAY bbspath 'does not exist!'
  51.     CALL SETCLIP('BBS_BROWSE')
  52.     EXIT(20)
  53.   END
  54. testchar=RIGHT(bbspath,1)
  55. IF testchar~='/' & testchar~=':' THEN bbspath=bbspath'/'
  56.  
  57. libpath = WORD(lynes.8,1)
  58. IF ~EXISTS(libpath) THEN
  59.   DO
  60.     SAY 'The library path, 'libpath', does not exist!'
  61.     CALL SETCLIP('BBS_BROWSE')
  62.     EXIT(22)
  63.   END
  64. testchar=RIGHT(libpath,1)
  65. IF testchar~='/' & testchar~=':' THEN libpath=libpath'/'
  66.  
  67. IF ~EXISTS(bbspath'Users/'name) THEN EXIT(1)
  68.  
  69. SAY CR
  70. SAY 'This background routine will archive a selected list of file'CR
  71. SAY 'descriptions from the' bbsname 'file libraries,'CR
  72. SAY 'The archive will then be saved in email for you.'CR
  73. SAY CR
  74. SAY 'Once you have made your choice of libraries, you will be returned'CR
  75. SAY 'to the main menu(s), and the rest of the process will keep running in'CR
  76. SAY 'the background (ain''t Amiga multi-tasking great?). If the archive'CR
  77. SAY 'is complete before you logout this session, you will be notified online.'CR
  78.  
  79. SAY CR
  80. OPTIONS PROMPT 'Continue? (nY) '
  81. PULL temp
  82. IF LEFT(temp,1)='N' THEN
  83.   DO
  84.     CALL SETCLIP('BBS_BROWSE')
  85.     EXIT(0);
  86.   END
  87.  
  88. /* get level, lastbrowse, & excludes from userfile */
  89. SAY CR
  90. x=OPEN(f,bbspath'Users/'name,'R')
  91. IF x=0 THEN EXIT(24);
  92. user.=''
  93. DO i=1 TO 16 WHILE ~EOF(f)
  94.   line=READLN(f)
  95. END
  96. lastbrowse=STRIP(WORD(line,1))
  97. DO i=17 TO 19 WHILE ~EOF(f)
  98.   line=READLN(f)
  99. END
  100. level=READLN(f)
  101. excludes=READLN(f)
  102. CALL CLOSE(f)
  103.  
  104. x=OPEN(f,bbspath'Numbers/LastFile','R')
  105. IF x=0 THEN EXIT(25);
  106. lastfile=STRIP(READLN(f))
  107. CALL CLOSE(f)
  108.  
  109. IF lastbrowse<lastfile THEN
  110.   DO
  111.     OPTIONS PROMPT 'Archive only NEW file descriptions? (yN) '
  112.     PULL temp
  113.     IF LEFT(UPPER(temp),1)~='Y' THEN lastbrowse=0
  114.   END
  115. ELSE lastbrowse=0
  116.  
  117. SAY CR
  118. OPTIONS PROMPT 'Single line [A]lphabetical list or [F]ull File descriptions? (fA) '
  119. PULL singleflag 
  120. IF singleflag='F' THEN
  121.   DO
  122.     SAY CR
  123.     OPTIONS PROMPT 'Sort by [L]ibrary or [A]ll files together? (lA) '
  124.     PULL libflag 
  125.     IF libflag~='L' THEN libflag='A'
  126.  
  127.     SAY CR
  128.     OPTIONS PROMPT 'Sort by [D]ate or [A]lphabetically? (dA) '
  129.     PULL alphaflag 
  130.     IF alphaflag~='D' THEN alphaflag='A'
  131.   END
  132. ELSE singleflag='A'
  133.  
  134. SAY CR
  135. OPTIONS PROMPT 'Archive file descriptions from ALL available libraries? (nY) '
  136. PULL all_libs 
  137. IF LEFT(all_libs,1)~='N' THEN all_libs='Y'
  138.  
  139. SAY CR
  140. SAY 'Hang on while I gather the library list...'CR
  141. x=OPEN(f,bbspath'Lists/Libraries','R')
  142. IF x=0 THEN
  143.   DO
  144.     CALL SETCLIP('BBS_BROWSE')
  145.     EXIT(26);
  146.   END
  147. libs.=''
  148. DO i=1
  149.   line=READLN(f)
  150.   IF EOF(f) | line='END' THEN LEAVE i
  151.   num=WORD(line,1)
  152.   IF DATATYPE(num,'N') THEN
  153.     DO
  154.       num=num%1
  155.       IF num>0 & num<100 THEN libs.num=WORD(line,2)
  156.     END
  157. END
  158. CALL CLOSE(f)
  159.  
  160. SAY CR
  161. liblist=''
  162. numlist=''
  163. DO i=1 TO 99
  164.   IF i>level | libs.i='' THEN ITERATE i
  165.   IF FIND(UPPER(excludes),UPPER(libs.i))>0 THEN ITERATE i
  166.   temp=''
  167.   IF all_libs='N' THEN
  168.     DO
  169.       OPTIONS PROMPT 'Include the' CENTER(libs.i,16) 'library?  yes-no-start-quit-? (yNsq?) '
  170.       PULL temp
  171.     END
  172.   IF temp='?' THEN
  173.     DO
  174.       SAY CR
  175.       SAY 'Y - Yes, include this library in the archive.'CR
  176.       SAY 'N - No, skip this library.'CR
  177.       SAY 'S - Start archiving with the current library list.'CR
  178.       SAY 'Q - Quit without archiving.'CR
  179.       SAY CR
  180.       i=i-1
  181.     END
  182.   IF temp='Q' THEN SIGNAL BREAK_E
  183.   IF temp='S' THEN LEAVE i
  184.   IF all_libs='Y' | LEFT(STRIP(temp),1)='Y' THEN
  185.     DO
  186.       numlist=STRIP(numlist i)
  187.       liblist=STRIP(liblist libs.i)
  188.     END
  189. END
  190.  
  191. SAY CR
  192. SAY 'Archiving...'CR
  193. SAY 'When completed, the archive will be attached to email addressed to you.'CR
  194. SAY CR
  195. IF singleflag='A' THEN ADDRESS AREXX ArcAlpha.rexx name lastbrowse numlist
  196. ELSE ADDRESS AREXX ArcBrowse.rexx name lastbrowse alphaflag libflag liblist
  197. EXIT(0);
  198.  
  199.  
  200. ERROR:
  201. SYNTAX:
  202. FAILURE:
  203. BREAK_C:
  204. BREAK_E:
  205. EXIT(0);
  206.  
  207.  
  208. /* end of Make_BrowseList.rexx */
  209.